Hace unos meses, cuando nuestros proyectos aún estaban en .NET 4.7.2, solíamos ejecutar pruebas unitarias en nuestro servidor Azure DevOps mediante la tarea Visual Studio Test . Usamos Test files de parámetros para especificar qué ensamblajes de prueba deben ejecutarse y Code Coverage funcionó bien allí.
Desde que migramos nuestros proyectos a .NET 5.0, usamos dotnet test para ejecutar pruebas unitarias y ahora Code Coverage ya no funciona.
Aquí hay un ejemplo:
D:\test-2-1\_tool\dotnet\dotnet.exe test A.Test.dll B.Test.dll C.Test.dll --logger trx --results-directory D:\test-2-1\_temp --settings D:\test-2-1\5\s\.runsettings Microsoft (R) Test Execution Command Line Tool Version 16.9.4 Copyright (c) Microsoft Corporation. All rights reserved. Starting test execution, please wait... A total of 22 test files matched the specified pattern. Data collection : Unable to find a datacollector with friendly name 'Code Coverage'. Data collection : Could not find data collector 'Code Coverage' Contenido de .runsettings
<DataCollectionRunSettings> <DataCollectors> <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <Configuration> <CodeCoverage> <ModulePaths> <Include> <ModulePath>{someRegexToLimitCodeCoverageToSpecificTestAssemblies}</ModulePath> </Include> </ModulePaths> </CodeCoverage> </Configuration> </DataCollector> </DataCollectors> </DataCollectionRunSettings> En otro proyecto más pequeño, Code Coverage todavía funciona, pero aquí especificamos qué archivos de proyecto deben probarse, en lugar de qué ensamblados de prueba compilados .
¿Es este el camino a seguir ahora y, en caso afirmativo, es posible que vuelva a funcionar especificando ensamblajes de prueba también?
¡Gracias por adelantado!